Dynamic Point Cloud Compression Based on Projections, Surface Reconstruction and Video Compression

In this paper we will present a new dynamic point cloud compression based on different projection types and bit depth, combined with the surface reconstruction algorithm and video compression for obtained geometry and texture maps. Texture maps have been compressed after creating Voronoi diagrams. Used video compression is specific for geometry (FFV1) and texture (H.265/HEVC). Decompressed point clouds are reconstructed using a Poisson surface reconstruction algorithm. Comparison with the original point clouds was performed using point-to-point and point-to-plane measures. Comprehensive experiments show better performance for some projection maps: cylindrical, Miller and Mercator projections.


Introduction
A point cloud represents a set of discrete points in a given coordinate system, usually in a three-dimensional Cartesian system. It can represent different objects, urban settings and landscapes, or any other physical entities in different use cases such as: computer graphics and gaming, virtual reality, 3D content creation, medical applications, construction and manufacturing, consumer and retail, cultural heritage, remote sensing, autonomous vehicles, surveillance etc. [1]. Point clouds, together with light fields and digital holography are described as plenoptic representations of the visual scene, that are used in many immersive applications [2]. Point cloud processing algorithms can be considered in different scenarios, such as acquisition [3,4], coding and transmission [5,6] and (re)presentation and display [7,8].
Due to the data size of a static and dynamic point cloud, it is important to define efficient compression techniques for storage and compression. In this paper, we will present a dynamic point cloud compression that can be used in a point cloud transmission system. A basic overview has been presented in [9], while in [10] several static point clouds (with different sizes, e.g., number of points) have been compressed and decompressed using the equirectangular projection with a similar number of points as in the other used octree-based compression. In this paper we will present a comprehensive comparison of 10 different projection types, combined with the video compression algorithms for geometry and texture, and finally test surface reconstruction algorithms to fill the holes present after the lossy point cloud decompression process.
The structure of this article is as follows. Section 2 presents a related overview of point cloud compression algorithms. Section 3 presents different projection types that are used for projecting 3D point cloud to the image and vice versa. Section 4 describes the creation of the panorama image from a point cloud and how to recreate a point cloud from shows higher compression efficiency than that of MPEG's G-PCC, having at least 60% BD-Rate savings, tested on several datasets. The updated algorithm is proposed in [29]. Similar to [27] authors in [30] present the deep-learning coding approach to static point cloud geometry coding where a voxelized input point cloud is divided into 3D coding blocks of a fixed size and only non-empty 3D blocks are coded. The encoder transforms the input data into latent representations with lower dimensionality forcing a network to extract important features. The autoencoder learns the transform and its inverse operation suitable for the target data compared to image-transform coding where the transform basis functions are fixed. Performance results show improvements over the PCL (Point Cloud Library) [31]. The proposed compression from [30] is improved in [32] by adding the variational autoencoder which captures structure information still present on latent features and therefore entropy coding model parameters can be estimated on the encoder side and replicated on the decoder side more accurately. More importantly the authors add the resolution scalability via interlaced sub-sampling which not only increases the number of decoded points but also gives a good point cloud quality from a subjective point of view. Furthermore, these authors proposed adaptive deep learning-based static point cloud geometry coding which can adapt to any generic point cloud content to maximize the RD performance [33]. The author in [34] presents an adversarial autoencoding strategy for voxelized point cloud geometry where the main idea is to code each point cloud element independently and to decode it using a lower resolution reconstruction as side information. The encoder generates hash bytes, and the decoder combines them with side information to reconstruct the original block. The reconstructed block can be classified with an adversarial discriminator which is a regularizer for the reconstruction process thus improving the coding performance. A neural network architecture using a predictive coding module at the decoder stage for bit-rate reduction of geometry only point clouds is described in [35]. In this approach a block can be encoded independently or predicted using its neighbors based on the quality of the reconstructed block and the local topology of the model. Alternative to the mentioned block-by-block processing approaches point based models are used. In [36] the authors create an architecture consisting of a pointnet-based encoder, an uniform quantizer, an entropy estimation block and a nonlinear synthesis transformation module and in [37] a hierarhical autoencoder with multiscale loss function is presented. These architectures are insufficient for the processing of large point cloud data. VoxelDNN was proposed in [38] which combines the octree and voxel domains. Inference in this lossless compression is slow, and the occupancy probabilities are predicted sequentially, voxel by voxel, while the improved MSVoxelDNN models voxel occupancy and achieves rate savings over G-PCC up to 17% on average [39]. One of the new methods is presented in [40] and it brings a solution that can be applied to both static and dynamic point cloud compression. It employs the voxel context based entropy model and for dynamic PC compression temporal dependency is exploited. In the work of [41] detachable learning-based residual coding solution is created where the residual module enhances the decoded model quality at the expense of added bitrate.

Projection Types and Their Description
In this section, we describe different projection types and their inverse solutions that is later used in the process of obtaining 2D image projection from point clouds. Several of them are adopted from [15,42,43]. For each projection type, example panorama images for the geometry and texture are created using the point cloud "longdress_vox10_1060.ply" from Longdress dynamic point cloud dataset [44].
A point cloud geometry is first transformed from a Cartesian to a spherical coordinate system. Afterwards, 2D geometry panorama image coordinates (row number x and column number y) are calculated from the angle information (longitude θ and latitude ϕ), while the intensity (bit depth) of the 2D geometry panorama represents radius in spherical coordinates. An attribute panorama image, i.e., a 2D image representing color information in our case, is created by using the same row number x and column number y as for the geometry, with the same color as the point cloud point that it represents.

Lambert Azimuthal Equal-Area Projection
Transformation equations and the inverse formulas are given in Equations (1) and (2). ϕ 1 is the standard parallel, while θ 0 is the central longitude.
The inverse formulas are given in Equation (2): An example of panorama images is given in Figure 1.
(a) (b) Figure 1. Panorama images created using point cloud "longdress_vox10_1060.ply" from the Lambert azimuthal equal-area projection, for the geometry (a) and texture (b).
The inverse formulas are given in Equation (4): An example of panorama images is given in Figure 2.
(a) (b) Figure 2. Panorama images created using point cloud "longdress_vox10_1060.ply" from the Albers equal-area conic projection, for the geometry (a) and texture (b).

Cylindrical Projection
Cylindrical projection is similar to the equirectangular projection, however vertical coordinate is tangent of the latitude. Transformation equations and the inverse formulas are given in Equations (5) and (6). Usually, (ϕ 0 , θ 0 ) = (0 • , 0 • ). Later in the experiments, we will "compress" all ϕ latitude angles before creating panorama images, i.e., multiply ϕ with 0.825, and "decompress" (divide by 0.825) after recreating point cloud. This is because tangent function is not defined for angles near ±90 • .
The inverse formulas are given in Equation (6): An example of panorama images is given in Figure 3.  Figure 3. Panorama images created using point cloud "longdress_vox10_1060.ply" from the cylindrical projection, for the geometry (a) and texture (b).

Cylindrical Equal-Area Projection
Transformation equations and the inverse formulas are given in Equations (7) and (8). θ 0 is the standard longitude, while ϕ s is the standard latitude, e.g., for ϕ s = 0 it is called Lambert cylindrical equal-area projection.
The inverse formulas are given in Equation (8): An example of panorama images is given in Figure 4.  . Panorama images created using point cloud "longdress_vox10_1060.ply" from the cylindrical equal-area projection, for the geometry (a) and texture (b).

Equidistant Cylindrical Projection
Transformation equations and the inverse formulas for equidistant cylindrical projection are given in Equations (9) and (10). An equirectangular projection, one of the most common projection types, is a type of cylindrical equidistant projection. Horizontal coordinate x in this projection type is the longitude θ, while the vertical coordinate y is the latitude ϕ. ϕ 1 represents standard parallels (north and south of the equator) where the scale of the projection is true. For (ϕ 0 , θ 0 ) = (0 • , 0 • ) and cos ϕ 1 = 0 it is called the equirectangular projection, Equation (9).
The inverse formulas are given in Equation (10): An example of panorama images is given in Figure 5.
(a) (b) Figure 5. Panorama images created using point cloud "longdress_vox10_1060.ply" from the equirectangular projection, for the geometry (a) and texture (b).

Mercator Projection
Transformation equations and the inverse formulas are given in Equations (11) and (12). Problems may arise at latitudes ϕ near ±90 • . Usually, (ϕ 0 , θ 0 ) = (0 • , 0 • ). Similar to the cylindrical projection, later in the experiments we will "compress" all ϕ latitude angles, multiplying them with the factor 0.825, to create a panorama image (and "decompress"-divide them with the factor 0.825 to recreate point clouds).
The inverse formulas are given in Equation (12): An example of panorama images is given in Figure 6.
(a) (b) Figure 6. Panorama images created using point cloud "longdress_vox10_1060.ply" from the Mercator projection, for the geometry (a) and texture (b).

Miller Projection
The Miller projection is a modified Mercator projection. Transformation equations and the inverse formulas are given in Equations (13) and (14). Problems that may arise using the Mercator projection for latitudes φ near ±90 • are not present in the Miller projection.
The inverse formulas are given in Equation (14): An example of panorama images is given in Figure 7.

Rectilinear Projection
Transformation equations and the inverse formulas are given in Equations (15) and (16). θ 0 and ϕ 1 are the longitude and latitude of the center of the projection. It is recommended to use this projection for the horizontal and vertical angles of less than 120 • . Therefore, the panorama has to be divided into smaller subsets, e.g., minimum 3 (later we will use 4). In addition, for greater vertical angles, all angles are scaled to fit in less than ±90 • . Later in the experiments, similar to the cylindrical and Mercator projections, we will "compress" and "decompress" all of the ϕ latitude angles, by multiplying and dividing them by 0.825.
The inverse formulas are given in Equation (16): An example of panorama images is given in Figure 8.  Figure 8. Panorama images created using point cloud "longdress_vox10_1060.ply" from the rectilinear projection, for the geometry (a) and texture (b).

Pannini Projection
Transformation equations and the inverse formulas are given in Equations (17) and (18). θ 0 and ϕ 1 are the longitude and latitude of the center of the projection. Parameter d can be any non-negative number. For d = 0 we have a rectilinear projection, while d = 1 is the usual Pannini projection, used in the later experiments. It is recommended to use this projection for horizontal and vertical angles of less than 150 • . Therefore, the panorama has to be divided into smaller subsets, e.g., minimum of 3 (later we will use 4). In addition, for greater vertical angles, all angles are scaled to fit in less than ±90 • . For this projection type, later in the experiments we will "compress" and "decompress" all ϕ latitude angles, multiplying and dividing them with the factor 0.825.
The inverse formulas are given in Equation (18): Finally we yield, Equation (19): An example of panorama images is given in Figure 9.
(a) (b) Figure 9. Panorama images created using point cloud "longdress_vox10_1060.ply" from the Pannini projection, for the geometry (a) and texture (b).

Stereographic Projection
Transformation equations and the inverse formulas are given in Equations (20) and (21). θ 0 and ϕ 1 are the longitude and latitude of the center of the projection. It is advisable to use a 120 • longitude, e.g., to divide the image into at least 3 subsets (later we will use 4).
The inverse formulas are given in Equation (21): ρ cos ϕ 1 cos C − y sin ϕ 1 sin C , ϕ = arcsin cos C sin ϕ 1 + y sin C cos ϕ 1 ρ , An example of panorama images is given in Figure 10.
(a) (b) Figure 10. Panorama images created using point cloud "longdress_vox10_1060.ply" from the stereographic projection, for the geometry (a) and texture (b).

Creation of Panorama Images from Point Clouds and Recreation of Point Clouds
In this section we will describe how to calculate panorama images from point clouds, as well as how to recreate point clouds from obtained panorama images. Programs that were used are 3DTK toolkit [13], MeshLab [45], CloudCompare [46], FFmpeg [47] and MATLAB for scripts.
For this example, we will use the Miller projection, although any other projection described earlier can be used in a similar way. Also, we will use Longdress point cloud, first 20 frames [44]. This point cloud is a voxelized point cloud with a bounding box size of 1024 × 1024 × 1024, i.e., with 10-bit precision per each coordinate. Additionally, texture (color) for each point is represented with 24-bit RGB format, i.e., with 8 bits per color channel. Overall, 3 × 10 + 3 × 8 = 54 bits per point are used, in the ideal case; however, depending on the used format, even the binary format might occupy much more space, as we present later.
The input point cloud is read in MATLAB and an offset is added to all its points, so that the bounding box center is at (0, 0, 0). Afterwards, it is scaled so that the maximum distance between any point and the origin (0, 0, 0) does not exceed 2 bit_num − 1 = 65, 535 for a 16 bit panorama grayscale image, Equation (22).
bit_num = 16 (in the later case, but could be also 24 for some other point clouds) K = 0.01 (due to the later scaling made by the 3DTK toolkit) i ∈ {1, . . . , N}, N = number of points xx(i), yy(i), zz(i) are Cartesian coordinates of the point i point in each polygon and every point in a particular polygon being closer to its generating point than any other generating point [48]. By creating a "full" texture image, instead of originally sparse, additional video compression efficiency may be achieved later.  [2]); } } } The previously described algorithm is presented in Figure 11, for the tenth point cloud "longdress_vox10_1060.ply" and the Miller projection type. The projection area is set to be about 2,000,000 pixels. We define the ratio for the image size as the ratio between the first point cloud height and width, and again divided by π. In this example case, this ratio is 0.8968. Because later video compression expects frame width and height divisible by 8, we also round the final frame width and height to the nearest integer divisible by 8, Equation (23). Again, for the later video compression, all subsequent point clouds need to have the same frame size.
After the first point cloud has been projected to 2D panorama, all the other subsequent point clouds are also projected to the panorama for geometry and texture with the same frame size as the first one. Also, geometry and texture are calculated in the same way as earlier described. Afterwards, we use FFmpeg and different video compressions for geometry and texture images. For texture, we use the x265 coder (H.265/HEVC) with lossy compression, while for geometry we use the FFV1 coder with lossless compression. For x265 (for texture) we use crf 17 (constant rate factor), pixel format rgb24, preset veryslow, while for FFV1 (for geometry) we use pixel format gray9le (depth of 9 bits per pixel), as well as gray10le (only in the case of Miller projection). For this case, the texture file size is 11.3 × 10 6 bytes and the geometry file size is 14 × 10 6 bytes, so overall size is 25.3 × 10 6 bytes. Point cloud recreation is done by decompressing previously compressed video files, and afterwards using inverse formulas for used projection type, in this example Miller. For the color information, we use pixels from the panorama image for color (Voronoi diagram) that exist in panorama image for geometry. In the final step, we use several algorithms to oversample the original point cloud and fill holes that may exist in some parts of it: • normal estimation using CloudCompare version 2.11.1 x64 [46], for the later screened Poisson reconstruction, in "command line" mode. Specific parameters used were: -OCTREE_NORMALS auto -ORIENT PLUS_ZERO -MODEL TRI -ORIENT_NORMS_MST 8 -ORIENT_NORMS_MST 4. After the point cloud has been recreated, we need to scale it to its initial size and also translate it to its original position. Those 4 numbers (1 float for scaling and 3 floats for translation in each direction) have to be transmitted as well. Original point cloud snapshot and point cloud snapshots before and after the Poisson reconstruction algorithm are presented in Figure 12. Tested 20 input point clouds have overall 15,900,190 points, on average 795,010 points per point cloud, while the overall compressed file size is 25.3 × 10 6 B. In this case we use approximately 25.3 × 10 6 × 8/(20 × 795,010) = 12.7 bits per (input) point, or, if compared with the output number of points, we use approximately 25.3 × 10 6 × 8/(20 × 1,154,324) = 8.8 bits per output point. However, the Poisson reconstruction algorithm at the end of the decompression may produce even higher number of output points (in this case average number of points is 1,154,324), than the input number of points, so in this case the number of bits per output point may be misleading. Because of that, later we report only bits per input point. Poisson reconstruction step is an important part of the proposed algorithm, cf. Figure 12. Used scripts can be found on the web page [49].

Objective Measures Used for Point Cloud Performance Comparison
Recently, several objective measures have been proposed, based on geometry or/and attribute information of the tested point clouds [50]. For geometry, two different groups of measures have been proposed: point-to-point (p2p) and point-to-plane distances (p2pl) [51]. Later in the paper, as point-to-point measures we will use rmsF p2p, rmsFPSNR 1 p2p and rmsFPSNR 2 p2p measures defined as: In Equation (24), E i,j is defined as the difference vector (or point to nearest point vector) between an arbitrary point from the first point cloud and the corresponding nearest point from the second point cloud. The first and second point clouds are firstly original and degraded and then vice versa. Final (symmetric) measure is calculated as the measure with worse (higher rms) score.
In Equation (25) MAX_DIST is maximal distance between all pairs of closest points in the first and second point cloud, as defined in [51]. In Equation (26) c is the peak constant value, depending on the point cloud coordinates precision d (e.g., d = 10 for 10-bit depth precision), as used in [19] during the development of the MPEG standard.
Similar to the point-to-point measures, point-to-plane measures are defined as: In Equation (27) E i,j is defined similarly as for the p2p measures. N j is the unit normal vector, calculated for each point in the first point cloud. < E i,j , N j > is the dot product between error vector E i,j and normal vector N j , obtaining projected error vector. In Equation (28) parameter MAX_DIST is the same as in Equation (25) and in Equation (29) parameters c and d are the same as in the Equation (26).
In the next subsection, point-to-point and point-to-plane measures will be calculated using the software presented in [51].

Point Cloud Compression Using Different Projections-Compression Efficiency
Tables 1-3 present a basic overview of the compression efficiency of point clouds with different projection area: 1056 × 944 pixels (approximately 1,000,000), 1296 × 1160 pixels (approximately 1,500,000) and 1496 × 1344 pixels (approximately 2,000,000) respectively. Separately, we calculated bpp (bits per input point) and Mbps (bpp × average number of input points per point cloud × 30 point clouds per second × 10 −6 ) for color, range and color+range compressed video files. Results from all three tables are also summarized in the Figure 13, which represents average ratio of the input file sizes and the color and range compressed video file sizes, created from the panorama images, using point cloud Longdress. Higher ratio does not represent better case (i.e., better objective scores), but only higher number of used bits per input point, for the same panorama size. It can be concluded that equirectangular, Miller and Mercator projections have the highest bpp for the tested point cloud Longdress. Figure 13. Average ratio of the input file sizes and the color and range compressed video file sizes, created from the panorama images, using point cloud Longdress. Ratio is presented for all cases, e.g., for 1,000,000, 1,500,000 and 2,000,000 points.

Point Cloud Compression Using Different Projections-Objective Measures
This section compares different projection methods with three different panorama sizes using previously described point-to-point and point-to-plane objective measures.

Point Cloud Compression-Timing Performance
In this section we will present timing performance for the case of Miller 9-bit projection with panorama size of 2,000,000 points, Table 10. Point cloud to panorama and vice versa timing is averaged across 20 point clouds, while for video compression and decompression we use FFmpeg and different video compressions for geometry and texture images described earlier. For texture, we use the x265 coder (H.265/HEVC) with lossy compression, while for geometry we use the FFV1 coder with lossless compression. For x265 (for texture) we use crf 17 (constant rate factor), pixel format rgb24, preset veryslow, while for FFV1 (for geometry) we use pixel format gray9le (depth of 9 bits per pixel). Computer performance is: Intel i7-4770 @ 3.40 GHz, 16 GB RAM, using virtual machine on Windows 7 x64, running Ubuntu x64 18.04 LTS. It can be seen that Poisson reconstruction and upsampling process takes most of the overall time, compared with other steps. Minor steps in between presented were not taken into account (creating readable point clouds for CloudCompare and Meshlab by adding header in created point clouds from 3DTK and copying files). Due to the overall timing, we did not test all 300 point clouds in a Longdress sequence, but we used first 20 point clouds. However, we expect similar performance for the other point clouds as well.

Point Cloud Compression Using Different Point Clouds
In this section we will present results for two different dynamic point clouds, Redandblack and Soldier (Figure 17) from the dynamic point cloud dataset [44]. Similar to the previous test cases, we used 20 point clouds from the beginning ("redandblack_vox10_1450.ply"-"redandblack_vox10_1469.ply" and "soldier_vox10_0536.ply" -"soldier_vox10_0555.ply"). Panorama image size of approximately 2,000,000 points and cylindrical, Mercator and Miller 9-bit projection types have been used. Results for the point-to-point and point-toplane measures are shown in Figure 18 for Redandblack and Figure 19 for Soldier point clouds.  Figure 20 shows second decompressed point cloud Soldier, using cylindrical projection with panorama size of 2,000,000 points, "soldier_vox10_0537.ply". In Figure 20a we don't use Poisson reconstruction, while in Figure 20b we use Poisson reconstruction algorithm described earlier. It can be seen that in Figure 20a there are missing points on the left leg, which creates wrongly oriented normals and in Figure 20b there exist an artifact, not present in the original point cloud. Due to this error, there is a noticeable increase (lower quality) of point-to-point and point-to-plane measures, as it can be seen in Figure 19b,d, for the point cloud number 2 and cylindrical projection (blue color).

Comparison with Octree Reduction from 3DTK Toolkit
In this section we will present results using 3DTK toolkit and octree reduction method, for the previously tested point clouds: Longdress (Tables 11 and 12), Redandblack (Tables 13 and 14) and Soldier (Tables 15 and 16). Generally, parameter "R" turns on octree based point reduction with voxels of size R 3 , while parameter "O" enables randomized octree based point reduction with O points per voxel. We used "scan_red" and "show" programs from 3DTK toolkit to create reduced point clouds: "scan_red" to create decompressed octree-based reduced point clouds and "show" to create compressed .oct files. With increasing "R" we create lower number of points, while with increasing "O" we create higher number of output points. Decompressed point clouds have been compared with the original point clouds using previously described point-to-point and point-to-plane metrics. Average size of output .oct file is also reported, as well as their bits per input point (bpp).

Discussion
From Tables 4-6 e.g., before the Poisson surface reconstruction algorithm, the best projection is Miller 10-bit, however Miller 9-bit and Mercator (also 9-bit) are similarly performed. Probably because of the higher bit depth, Miller 10-bit is here the best projection, however 1 extra bit may not be justified by only a little better objective measures, Figure 16. From Tables 7-9 e.g., after the Poisson reconstruction algorithm, Mercator projection is the best in the cases with projection areas of 1056 × 944 pixels and 1296 × 1160 pixels, while cylindrical projection is the best for the projection area of 1496 × 1344 pixels. In the case of the bigger projection area, there are more points, so surface reconstruction algorithm gives better results. Actually, the main problem is the automatic calculation of normal vectors: in some cases, inverted normal vectors are calculated so Poisson reconstruction algorithm afterwards creates unwanted artifacts, lowering the overall objective score rmsF. If the point clouds originate from sensor measurements, then the sensor poses enable a consistent orientation of the normal vectors. Artifacts from inconsistent normals are noticable in Figures 14 and 15 as higher scores in those point clouds. It can be seen that in the best case, e.g., cylindrical projection with a projection area of 1496 × 1344 pixels, Figure 15f, there are no unexpected errors, so the average score is the best for this case. The Miller projection also gives very good results, with only 1 larger error for the largest projection area. However, with smaller projection areas, some of the points in the original point cloud become occluded by other points, so that they are not visible in the used projection. Because of that, larger holes appear in the decompressed point cloud, which makes it difficult to calculate normal vectors and finally surface reconstruction. This can be seen especially in the smallest projection area that was tested, with a size 1056 × 944 pixels. In this case, average rmsF objective score measures are the same before and after surface reconstruction, meaning that the results were not better with the reconstruction algorithm. From Figure 18, Redandblack point cloud, all proposed projections generally give good results with Poisson reconstruction. From Figure 19, Soldier point cloud, Mercator and Miller projections give good results with Poisson reconstruction, while cylindrical projection creates one error for the second point cloud. Possibly, newer projection maps might be used, for example as in the irregularly shaped objects in astronomy [52].
In Equation (22) we are using 16-bit precision, newly added in 3DTK toolkit, so that in this paper we have the best representation for 16-bit precision, which can be also saved in png file and stored using 3DTK toolkit (which uses OpenCV to store images). However, later we are compressing geometry using 9-bit (or 10-bit for Miller compression) and FFV1 video compression. FFV1 decoder also creates 16-bit png images, but with maximally 2 9 (or 2 10 ) different intensities. This is different, compared to the reference [9], because in the reference [9] we used only 24-bit geometry precision, before video compression. Compared with the reference [9], similar parameters were for 1920x1080 resolution and equirectangular projection, where 64,160,627 bytes (for the geometry and color) were used, while in this paper for panorama size of 2,000,000 and equirectangular projection we use 12.7261 bits per point or (multiplied by 795,010 average number of input points and 20 point clouds) 25,293,426 bytes, which is 39.4% from [9]. Separately, in [9] we use 21,378,775 bytes for the geometry, while in this paper we use 14,225,893 bytes or 66.5% from [9]. For the color, in [9] we use 43,208,605 bytes, while in this paper we use 11,067,533 bytes or 25.6% from [9]. Also, somewhat better pixel occupancy is achieved in this paper, compared to the reference [9]: for the same case (and equirectangular projection), average decompressed point cloud Longdress has 428,221 points (before Poisson reconstruction) in this paper and 398,905 in [9]. This might be also compared with equirectangular projection and panorama size of 1,500,000 points, where average decompressed point cloud has 390,058 points (before Poisson reconstruction). For this case, we use 9.9778 bits per point or 19,831,040 bytes. which is 30.9% from [9]. Better projection methods, like Miller, gives for the same panorama size (1,500,000 points) on average higher number of output point cloud points-406,868 and also needs 19,789,828 bytes for the geometry and color, or 30.8% from [9]. In the reference [10], larger static point clouds were also used with bigger range dynamic, which might need 24-bit representation. However, in this paper we used only voxelized dynamic point clouds with the size 1024 × 1024 × 1024, so 9-bit representation might be enough.
In comparison with the results from octree reduction, the proposed solution gives better results for a similar size. However, the octree reduction algorithm has not been designed for dynamic point clouds, and it was designed for other types of point clouds, such as point clouds created by LIDAR, with non-uniform density and sampling, with much higher bit-depth, in which case results might be different. Also, in octree-based reduction, points do not occlude each other, so it creates a uniformly (sub)sampled point cloud, independent of the final number of points, compared to the proposed solution.

Conclusions
In this paper, we have proposed a new projection-based point cloud compression using different projection types, video compression algorithms, and surface reconstruction algorithm. Ten different projection types and three different projection area sizes have been considered, and objective point-to-point and point-to-plane measures were calculated. The results showed that, overall, the Miller projection can be considered as the best among the tested projections. The Mercator projection needs to be modified to address the problem of representing latitudes ϕ near ±90 • . Cylindrical projection has worse objective scores for smaller panorama size (among tested sizes). Also, although the Poisson surface reconstruction can imply some artifacts due to the missing points in the raw decompressed point cloud, it is an important step of the proposed point cloud compression which fills the missing points and usually generates better visual quality of reconstructed point clouds, at least for larger panorama sizes and tested point clouds.
Future research will consider different projection types which may keep points without creating larger holes and better algorithms for normal vector calculation which may provide higher compression ratios. Different empty-pixel color filling methods might also be considered in future research, such as horizontal filling used by MPEG's V-PCC compression.